package cn.edu.ujn.ch14.c;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import cn.edu.ujn.ch14.m.User;

@Controller
public class UserController {

	/**
	 * 1、表单提交用户信息，Controller接收后，返回JSON数据
	 * 
	 * @return
	 */
	@GetMapping("/find")
	public String toFind() {
		return "find";
	}
	// TODO 新建findUser方法，完善接收User数据，并返回JSON数据

	/**
	 * 2、JS发送JSON数据，Controller接收后，返回JSON数据
	 * 
	 * @return
	 */
	@RequestMapping("/index")
	public String toIndex() {
		return "index";
	}
	// TODO 新建testJson方法，接收JSON，返回JSON

	/**
	 * 3、Restful支持(查询信息，返回JSON)
	 * 
	 * @return
	 */
	@RequestMapping("/rest")
	public String toRest() {
		return "restful";
	}
	// TODO 添加select方法，完善Restful方式获取id，并返回JSON
	

	/**
	 * 4、Restful支持（添加信息，返回JSON）
	 * 
	 * @return
	 */
	@GetMapping("/add")
	public String toAdd() {
		return "add";
	}

	@PostMapping("/user")
	public User add(User user) {
		System.out.println("添加成功：" + user);
		user.setId(777);
		return user;
	}

	/**
	 * 5、Restful支持（修改信息，返回JSON）
	 * 
	 * @return
	 */
	@GetMapping("/edit")
	public String toEdit(User user) {
		user.setId(5);
		user.setUsername("刘鹍");
		user.setPassword("654321");
		return "edit";
	}

	@PutMapping("/user")
	public User edit(User user) {
		System.out.println("修改成功：" + user);
		return user;
	}
	
	/**
	 * 6、Restful支持（删除信息，返回JSON）
	 * 
	 * @return
	 */
	@GetMapping("/delete")
	public String toDelete() {		
		return "delete";
	}
	@DeleteMapping("/user/{id}")
	public String deleteUser( Integer id) {
		System.out.println("删除数据:"+id);
		return id+"删除成功！";
	}

	/**
	 * 7、Restful支持（查询所有信息，返回数组格式JSON）
	 * 
	 * @return
	 */
	@GetMapping("/list")
	public String toList() {		
		return "list";
	}
	@GetMapping("/user")
	public List<User> findAll() {
		ArrayList<User> list = new ArrayList<User>();
		User user = new User();
		user.setId(1);
		user.setUsername("liukun");
		user.setPassword("666");
		list.add(user);
		User user2 = new User();
		user2.setId(2);
		user2.setUsername("jingshan");
		user2.setPassword("888");
		list.add(user2);
		return list;
	}
	
	

}
